/**
 * 表格导出成excel
 * @param {*} theadArr 表头:['表格项1','表格项2',...]
 * @param {*} tbodyArr 表身:[{},{},{},...]
 */
const tableToExcel = (theadArr,tbodyArr) => {
    // 列标题
    let str = `<tr>`;
    theadArr.forEach(item => {
        str +=`<th>${item}</th>`;
    });
    str +=`</tr>`
    
    // 循环遍历，每行加入tr标签，每个单元格加td标签
    for(let i = 0 ; i < tbodyArr.length ; i++ ){
        str+='<tr>';
        for(const key in tbodyArr[i]){
            // 增加\t为了不让表格显示科学计数法或者其他格式
            str+=`<td>${ tbodyArr[i][key] + '\t'}</td>`;     
        }
        str+='</tr>';
    }
    // Worksheet名
    const worksheet = 'Sheet1'
    const uri = 'data:application/vnd.ms-excel;base64,';

    // 下载的表格模板数据
    const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office" 
    xmlns:x="urn:schemas-microsoft-com:office:excel" 
    xmlns="http://www.w3.org/TR/REC-html40">
    <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
    <x:Name>${worksheet}</x:Name>
    <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
    </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
    </head><body><table>${str}</table></body></html>`;
    // 下载模板
    window.location.href = uri + base64(template);
};
 
/**
 * 输出base64编码
 * @param {*} s 
 */
const base64 = s => window.btoa(unescape(encodeURIComponent(s)));

/**
 * 表格转.csv文件导出
 * @param {*} theadArr:表头数组，例如：['表格项1','表格项2',...]
 * @param {*} tbodyArr:表身数据，例如：let tbodyArr = [{
 *                                                      name:'路人甲',
 *                                                      phone:'123456789',
 *                                                      email:'000@123456.com'
 *                                                   }];
 * @param {*} name:文件名称
 */
const tableToCSV = (theadArr,tbodyArr,name) => {
    // 列标题，逗号隔开，每一个逗号就是隔开一个单元格
    let str = theadArr.toString()
    // 增加\t为了不让表格显示科学计数法或者其他格式
    for(var i = 0 ; i < jsonData.length ; i++ ){
        for(var key in jsonData[i]){
            theadStr+=`${jsonData[i][key] + '\t'},`;     
        }
        theadStr+='\n';
    }
    // encodeURIComponent解决中文乱码
    var uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str);
    // 通过创建a标签实现
    var link = document.createElement("a");
    link.href = uri;
    // 对下载的文件命名
    link.download =  name+".csv";
    document.body.appendChild(link)
    link.click();
    document.body.removeChild(link)
}